import type { DecodeResult } from './qrDecoder'
import { HistoryManager } from './historyManager'

/**
 * 获取历史记录
 * @returns 历史记录数组
 */
export const getHistory = (): DecodeResult[] => {
  return HistoryManager.getHistory()
}

/**
 * 保存解码结果到历史记录
 * @param result 解码结果
 */
export const saveDecodeResult = (result: DecodeResult): void => {
  HistoryManager.addRecord(result)
}

/**
 * 清空历史记录
 */
export const clearHistory = (): void => {
  HistoryManager.clearHistory()
}

/**
 * 删除指定历史记录
 * @param id 记录ID
 */
export const deleteHistoryRecord = (id: string): void => {
  HistoryManager.deleteRecord(id)
}

/**
 * 获取分页历史记录
 * @param page 页码
 * @param pageSize 每页数量
 * @returns 分页结果
 */
export const getPagedHistory = (page: number = 1, pageSize: number = 10) => {
  return HistoryManager.getPagedHistory(page, pageSize)
}

/**
 * 搜索历史记录
 * @param keyword 搜索关键词
 * @returns 匹配的历史记录
 */
export const searchHistory = (keyword: string): DecodeResult[] => {
  return HistoryManager.searchHistory(keyword)
}

/**
 * 按类型筛选历史记录
 * @param type 二维码类型
 * @returns 指定类型的历史记录
 */
export const filterHistoryByType = (type: string): DecodeResult[] => {
  return HistoryManager.filterByType(type)
}

/**
 * 按来源筛选历史记录
 * @param source 来源类型
 * @returns 指定来源的历史记录
 */
export const filterHistoryBySource = (source: 'upload' | 'camera'): DecodeResult[] => {
  return HistoryManager.filterBySource(source)
}

/**
 * 获取历史记录统计信息
 * @returns 统计信息
 */
export const getHistoryStatistics = () => {
  return HistoryManager.getStatistics()
}

/**
 * 导出历史记录
 * @returns JSON字符串
 */
export const exportHistory = (): string => {
  return HistoryManager.exportHistory()
}

/**
 * 导入历史记录
 * @param jsonStr JSON字符串
 * @param merge 是否合并
 * @returns 导入结果
 */
export const importHistory = (jsonStr: string, merge: boolean = true) => {
  return HistoryManager.importHistory(jsonStr, merge)
}

/**
 * 获取存储使用情况
 * @returns 存储信息
 */
export const getStorageInfo = () => {
  return HistoryManager.getStorageInfo()
}